In many types of today's commercial, industrial and residential structures, the overall function of operating the structure and perhaps even controlling some or all of the activities within it is performed by a number of individual electronic computing devices spread around the structure. Efficient and safe performance of these functions requires that the individual devices execute the control algorithms as a coordinated group, and that this performance be relatively trouble-free over months and even years. A number of examples of functions to be controlled come to mind. First of course is the environmental control within the structure. But there are other functions as well which may be under computer control, and it may be advantageous to coordinate all of these activities by combining the computing devices into an interactive network, where each of the devices are connected to communicate with other devices.
For example, if the operation is a retail store of some size, there is a need for control of the individual cash registers, inventory management, warehousing, scheduling, fire alarms, etc. If the operation is a factory, there is raw materials and finished goods management, control of the manufacturing devices, process control, billing, payroll, etc. Each of the operations are characterized by the necessity of approximately real time control of the individual subsystems involved, all of which are spread over a substantial area, and yet must be controlled in a coordinated fashion. It is natural to turn to the cheap and reliable computing devices now available to perform the control functions and to manage the communication functions as well.
To accomplish these functions the individual computing devices are connected together by data paths over which information may flow between the individual devices in messages of various types. Usually the messages are encoded in electrical signals carried on electrical conductors. Such a group of connected computing devices may be referred to as a communications network, with the individual computing devices being referred to as nodes of the network. Typically each, or at least a number, of the nodes comprises a small microprocessor which performs communication and control functions needed by the system elements at the point where it is located.
There are a number of ways to configure these networks. One obvious configuration is to connect each of the nodes to every other node with an individual data path, but it can be seen that this will quickly result in an unmanageable number of data paths for all but the smallest networks. It is also possible to create a ring structure where each of the nodes receives data from one node and transmits data to another node in a ring or cyclic arrangement. This arrangement has many advantages, but it does require that communication between two nodes will involve information transfer through a number of different nodes until it reaches the destination node, increasing the complexity of communication management and network structure, and to some extent reducing the speed with which the information is transmitted. A third configuration, and the one for which the invention forming the subject of this patent is intended, uses a data bus configuration, where a single pair of conductors are connected to every one of the nodes. Data transmission occurs by the simple expedient of a node placing electrical signals on the data bus which each of the other nodes can then sense. The data bus itself in the network under consideration here may comprise a simple twisted pair conductor.
In such a system, the simplest design uses time multiplexing where, to prevent garbling of the individual messages when simultaneous signal transmissions (so-called collisions) occur, only one of the nodes is allowed to transmit at any given instant. This is one of the disadvantages of this configuration. Because messages cannot overlap timewise, the data rates tend to be relatively slow. On the other hand, using the simple twisted pair data bus reduces the effort required in installing it and in adding and removing nodes. Further, twisted pair data busses are cheaper than most other types of data paths.
In order to manage data transfer on the bus and prevent collisions of messages transmitted simultaneously, the nodes one at a time enter active mode intervals during which the node may provide on the data bus to the other nodes a signal encoding a plurality of different messages containing whatever information is specified by the control program being executed by the node's microprocessor. There is typically some type of activating message frequently referred to as a token message or simply a token, which is passed from one node to the next. After the node has received a token message and before it transmits a token message to another node, the node is active and can transmit messages on the bus. How the token message is passed and what determines the next recipient node when one node relinquishes the token message is not particularly important to this invention. Note however, that the token is passed in an order which allows all of a selected group of the nodes to become active within some predetermined time. Further, it is usually preferred that the token is passed in some preselected sequence whereby all of the nodes in the group receive and transmit the token before a node receives the token for a second time. The order in which nodes become active is subject to change as nodes are added to and removed from the bus.
To further manage this sequential process of nodes receiving the token and becoming active it is convenient to have a node address for each of the nodes by which each node may be identified. This node address is unique for each node, i.e., only one node on any network has a particular node address. The node address for each node is stored in a node address register. It is possible to program the nodes so that they will recognize their node address in destination fields in message on the bus and in this way may determine that particular messages are directed specifically to the particular node. For example, this capability is useful in passing the token to a specific node. It is also possible for a node to broadcast a message intended for all of the other nodes on the network. Such a broadcast message may have a particular field within itself whose bit pattern identifies it as a broadcast message.
The particular application for which the system to be described was designed involves control of the internal environment of a building, including the heating, air conditioning, and ventilating (HVAC) functions. There are safety, efficiency, and cost considerations involved in such a system so reliability is important, but the data rates are not extreme. If important information can be provided within a few seconds, this is usually adequate.
It is useful in such an application for certain of the nodes to serve as sources for status messages provided on the data bus, each of the status messages including information useful to other or perhaps all of the nodes on the network. There may be two or more classes of these status messages, and a number of different types of status messages within each class. For example in the HVAC application mentioned, one class of status messages may comprise environmental conditions whose levels are in some cases provided to individual nodes by sensors located at the appropriate point to measure the particular condition for which the sensor is designed. Another class may comprise alarm conditions within the controlled HVAC devices. Examples of environmental information may be time, outside temperature, or outside humidity. Alarm conditions may comprise excessive pressure or temperature in the boiler which furnishes the heat for the building, tripping of a circuit breaker, etc.
It is usually preferred that there be more than one sensor and more than one node capable of serving as the source for many of the particular types of these status messages. This insures that the status message will be available even if there is a failure of either the sensor or the node to which it provides its output. However, it is usually preferable that only a single source of a particular type of status message actually provide the message, one reason being simply to reduce traffic on the data bus. Furthermore, the sensors will frequently provide different values, and if different values are presented at successive intervals for use in the control algorithms, there is the possibility of unstable or at least inaccurate or inefficient control. It thus becomes desirable in these systems that there be a procedure to select and designate as the source node one of the several nodes having the capability to supply each type of status message.